package com.barry.generator

import java.io.{File, PrintWriter}

import com.barry.dto.{ReportConfig, ReportOutput}
import com.barry.utils.{AnnotationUtil, ScalaFunction}
import com.today.service.commons.Action

/**
  * 类功能描述：CSV报表生成父类
  *
  * @author WangXueXing create at 18-10-29 下午3:45
  * @version 1.0.0
  */
trait CsvReportAction extends ReportAction {
  /**
    * 根据数据生成报表
    *
    * @return
    */
  override def generateReport(reportId: Long, reportConfig: ReportConfig): ReportOutput = {
    //生成本地文件
    val excelFile = File.createTempFile(downloadFileName+"_", ".csv")
    //根据注解顺序生成CSV数据列表
    ScalaFunction.tryWithResources(new PrintWriter(excelFile)){out=>
      AnnotationUtil.getValueWithHead(getReportData).foreach(println(_))
    }

    //上传云存储

    //返回云云存储路径
    ReportOutput("")
  }

  /**
    * 设置模板路径
    * @return
    */
  def getReportData: List[AnyRef]
}
